home *** CD-ROM | disk | FTP | other *** search
/ ...taking it to the Macs! / ...taking it to the Macs!.iso / Extras / ActiveX Mac SDK / ActiveX SDK / Headers / MONIKER.H < prev    next >
Encoding:
C/C++ Source or Header  |  1996-04-22  |  9.6 KB  |  257 lines  |  [TEXT/????]

  1. /*****************************************************************************\
  2. *                                                                             *
  3. * moniker.h -     Moniker and related interfaces and APIs                          *
  4. *                                                                             *
  5. *               OLE Version 2.0                                               *
  6. *                                                                             *
  7. *               Copyright (c) 1992-1994, Microsoft Corp. All rights reserved. *
  8. *                                                                             *
  9. \*****************************************************************************/
  10.  
  11.  
  12. #if !defined(__MONIKER__) && !defined(_MONIKER_H_)
  13. #define __MONIKER__
  14. #define _MONIKER_H_
  15.  
  16. #define MK_E_CONNECTMANUALLY        MK_E_FIRST
  17. #define MK_E_EXCEEDEDDEADLINE       (MK_E_FIRST + 1)
  18. #define MK_E_NEEDGENERIC            (MK_E_FIRST + 2)
  19. #define MK_E_UNAVAILABLE            (MK_E_FIRST + 3)
  20. #define MK_E_SYNTAX                 (MK_E_FIRST + 4)
  21. #define MK_E_NOOBJECT               (MK_E_FIRST + 5)
  22. #define MK_E_INVALIDEXTENSION       (MK_E_FIRST + 6)
  23. #define MK_E_INTERMEDIATEINTERFACENOTSUPPORTED (MK_E_FIRST + 7)
  24. #define MK_E_NOTBINDABLE            (MK_E_FIRST + 8)
  25. #define MK_E_NOTBOUND               (MK_E_FIRST + 9)
  26.                             // called IBindCtx->RevokeObjectBound for an
  27.                             // object which was not bound
  28. #define MK_E_CANTOPENFILE           (MK_E_FIRST + 10)
  29. #define MK_E_MUSTBOTHERUSER         (MK_E_FIRST + 11)
  30. #define MK_E_NOINVERSE              (MK_E_FIRST + 12)
  31. #define MK_E_NOSTORAGE              (MK_E_FIRST + 13)
  32. #define MK_E_NOPREFIX               (MK_E_FIRST + 14)
  33.  
  34.  
  35. // reserved                     MK_S_FIRST
  36. // reserved                     (MK_S_FIRST + 1)
  37. #define MK_S_REDUCED_TO_SELF    (MK_S_FIRST + 2)
  38. // reserved                     (MK_S_FIRST + 3)
  39. #define MK_S_ME                 (MK_S_FIRST + 4)
  40. #define MK_S_HIM                (MK_S_FIRST + 5)
  41. #define MK_S_US                 (MK_S_FIRST + 6)
  42. #define MK_S_MONIKERALREADYREGISTERED (MK_S_FIRST + 7)
  43.  
  44.  
  45. // bind options; variable sized
  46. typedef struct FARSTRUCT tagBIND_OPTS
  47. {
  48.     unsigned long       cbStruct;       //  sizeof(BIND_OPTS)
  49.     unsigned long       grfFlags;
  50.     unsigned long       grfMode;
  51.     unsigned long       dwTickCountDeadline;
  52. } BIND_OPTS, * LPBIND_OPTS;
  53.  
  54.  
  55. // bind flags; controls binding; stored in bind options above
  56. typedef enum
  57. {
  58.     BIND_MAYBOTHERUSER = 1,
  59.     BIND_JUSTTESTEXISTENCE = 2
  60.     ,BIND_FLAGS_FORCELONG    =    2147483647
  61. } BIND_FLAGS;
  62.  
  63.  
  64. // system moniker types; returned from IsSystemMoniker.
  65. typedef enum tagMKSYS
  66. {
  67.     MKSYS_NONE = 0,
  68.     MKSYS_GENERICCOMPOSITE = 1,
  69.     MKSYS_FILEMONIKER = 2,
  70.     MKSYS_ANTIMONIKER = 3,
  71.     MKSYS_ITEMMONIKER = 4,
  72.     MKSYS_POINTERMONIKER = 5
  73.     ,MKSYS_FORCELONG    =    2147483647
  74. }MKSYS;
  75.  
  76.  
  77. typedef enum tagMKREDUCE
  78. {
  79.     MKRREDUCE_ONE           =   3<<16,
  80.     MKRREDUCE_TOUSER        =   2<<16,
  81.     MKRREDUCE_THROUGHUSER   =   1<<16,
  82.     MKRREDUCE_ALL           =   0
  83.     ,MKRREDUCE_FORCELONG    =    2147483647
  84. } MKRREDUCE;
  85.  
  86.  
  87. #if defined(__cplusplus)
  88. interface IEnumMoniker;
  89. interface IRunningObjectTable;
  90. #else 
  91. //typedef interface IEnumMoniker IEnumMoniker;
  92. //typedef interface IRunningObjectTable IRunningObjectTable;
  93. #endif
  94.  
  95. typedef       interface IEnumMoniker * LPENUMMONIKER, ** LPLPENUMMONIKER;
  96. typedef       interface IRunningObjectTable * LPRUNNINGOBJECTTABLE, ** LPLPRUNNINGOBJECTTABLE;
  97.  
  98.  
  99.  
  100. #undef  INTERFACE
  101. #define INTERFACE   IBindCtx
  102.  
  103. DECLARE_INTERFACE_(IBindCtx, IUnknown)
  104. {
  105.     BEGIN_INTERFACE
  106.     // *** IUnknown methods ***
  107.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void * * ppvObj) PURE;
  108.     STDMETHOD_(unsigned long,AddRef) (THIS)  PURE;
  109.     STDMETHOD_(unsigned long,Release) (THIS) PURE;
  110.  
  111.     // *** IBindCtx methods ***
  112.     STDMETHOD(RegisterObjectBound) (THIS_ LPUNKNOWN punk) PURE;
  113.     STDMETHOD(RevokeObjectBound) (THIS_ LPUNKNOWN punk) PURE;
  114.     STDMETHOD(ReleaseBoundObjects) (THIS) PURE;
  115.     
  116.     STDMETHOD(SetBindOptions) (THIS_ LPBIND_OPTS pbindopts) PURE;
  117.     STDMETHOD(GetBindOptions) (THIS_ LPBIND_OPTS pbindopts) PURE;
  118.     STDMETHOD(GetRunningObjectTable) (THIS_ LPLPRUNNINGOBJECTTABLE
  119.         pprot) PURE;
  120.     STDMETHOD(RegisterObjectParam) (THIS_ char * lpszKey, LPUNKNOWN punk) PURE;
  121.     STDMETHOD(GetObjectParam) (THIS_ char * lpszKey, LPLPUNKNOWN ppunk) PURE;
  122.     STDMETHOD(EnumObjectParam) (THIS_ LPLPENUMSTRING ppenum) PURE;
  123.     STDMETHOD(RevokeObjectParam) (THIS_ char * lpszKey) PURE;
  124. };
  125. typedef             IBindCtx * LPBC, ** LPLPBC;
  126. typedef         IBindCtx * LPBINDCTX, ** LPLPBINDCTX;
  127.  
  128.  
  129.  
  130. #undef  INTERFACE
  131. #define INTERFACE   IMoniker
  132.  
  133. DECLARE_INTERFACE_(IMoniker, IPersistStream)
  134. {
  135.     BEGIN_INTERFACE
  136.     // *** IUnknown methods ***
  137.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void * * ppvObj) PURE;
  138.     STDMETHOD_(unsigned long,AddRef) (THIS)  PURE;
  139.     STDMETHOD_(unsigned long,Release) (THIS) PURE;
  140.  
  141.     // *** IPersist methods ***
  142.     STDMETHOD(GetClassID) (THIS_ LPCLSID lpClassID) PURE;
  143.  
  144.     // *** IPersistStream methods ***
  145.     STDMETHOD(IsDirty) (THIS) PURE;
  146.     STDMETHOD(Load) (THIS_ LPSTREAM pStm) PURE;
  147.     STDMETHOD(Save) (THIS_ LPSTREAM pStm,
  148.                     unsigned long fClearDirty) PURE;
  149.     STDMETHOD(GetSizeMax) (THIS_ ULARGE_INTEGER  * pcbSize) PURE;
  150.  
  151.     // *** IMoniker methods ***
  152.     STDMETHOD(BindToObject) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
  153.         REFIID riidResult, void * * ppvResult) PURE;
  154.     STDMETHOD(BindToStorage) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
  155.         REFIID riid, void * * ppvObj) PURE;
  156.     STDMETHOD(Reduce) (THIS_ LPBC pbc, unsigned long dwReduceHowFar, LPLPMONIKER
  157.         ppmkToLeft, LPLPMONIKER ppmkReduced) PURE;
  158.     STDMETHOD(ComposeWith) (THIS_ LPMONIKER pmkRight, unsigned long fOnlyIfNotGeneric,
  159.         LPLPMONIKER ppmkComposite) PURE;
  160.     STDMETHOD(Enum) (THIS_ unsigned long fForward, LPLPENUMMONIKER ppenumMoniker)
  161.         PURE;
  162.     STDMETHOD(IsEqual) (THIS_ LPMONIKER pmkOtherMoniker) PURE;
  163.     STDMETHOD(Hash) (THIS_ unsigned long    * pdwHash) PURE;
  164.     STDMETHOD(IsRunning) (THIS_ LPBC pbc, LPMONIKER pmkToLeft, LPMONIKER
  165.         pmkNewlyRunning) PURE;
  166.     STDMETHOD(GetTimeOfLastChange) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
  167.         FILETIME * pfiletime) PURE;
  168.     STDMETHOD(Inverse) (THIS_ LPLPMONIKER ppmk) PURE;
  169.     STDMETHOD(CommonPrefixWith) (THIS_ LPMONIKER pmkOther, LPLPMONIKER
  170.         ppmkPrefix) PURE;
  171.     STDMETHOD(RelativePathTo) (THIS_ LPMONIKER pmkOther, LPLPMONIKER
  172.         ppmkRelPath) PURE;
  173.     STDMETHOD(GetDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
  174.         char * * lplpszDisplayName) PURE;
  175.     STDMETHOD(ParseDisplayName) (THIS_ LPBC pbc, LPMONIKER pmkToLeft,
  176.         char * lpszDisplayName, unsigned long * pchEaten,
  177.         LPLPMONIKER ppmkOut) PURE;
  178.     STDMETHOD(IsSystemMoniker) (THIS_ unsigned long    * pdwMksys) PURE;
  179. };
  180. //typedef         IMoniker * LPMONIKER, ** LPLPMONIKER;
  181.  
  182.  
  183.  
  184. #undef  INTERFACE
  185. #define INTERFACE   IRunningObjectTable
  186.  
  187. DECLARE_INTERFACE_(IRunningObjectTable, IUnknown)
  188. {
  189.     BEGIN_INTERFACE
  190.     // *** IUnknown methods ***
  191.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void * * ppvObj) PURE;
  192.     STDMETHOD_(unsigned long,AddRef) (THIS)  PURE;
  193.     STDMETHOD_(unsigned long,Release) (THIS) PURE;
  194.  
  195.     // *** IRunningObjectTable methods ***
  196.     STDMETHOD(Register) (THIS_ unsigned long grfFlags, LPUNKNOWN punkObject, 
  197.         LPMONIKER pmkObjectName, unsigned long  * pdwRegister) PURE;
  198.     STDMETHOD(Revoke) (THIS_ unsigned long dwRegister) PURE;
  199.     STDMETHOD(IsRunning) (THIS_ LPMONIKER pmkObjectName) PURE;
  200.     STDMETHOD(GetObject) (THIS_ LPMONIKER pmkObjectName,
  201.         LPLPUNKNOWN ppunkObject) PURE;
  202.     STDMETHOD(NoteChangeTime) (THIS_ unsigned long dwRegister, FILETIME  * pfiletime) PURE;
  203.     STDMETHOD(GetTimeOfLastChange) (THIS_ LPMONIKER pmkObjectName, FILETIME  * pfiletime) PURE;
  204.     STDMETHOD(EnumRunning) (THIS_ LPLPENUMMONIKER ppenumMoniker ) PURE;
  205. };
  206. //typedef         IRunningObjectTable * LPRUNNINGOBJECTTABLE, ** LPLPRUNNINGOBJECTTABLE;
  207.  
  208.  
  209.  
  210. #undef  INTERFACE
  211. #define INTERFACE   IEnumMoniker
  212.  
  213. DECLARE_INTERFACE_(IEnumMoniker, IUnknown)
  214. {
  215.     BEGIN_INTERFACE
  216.     // *** IUnknown methods ***
  217.     STDMETHOD(QueryInterface) (THIS_ REFIID riid, void * * ppvObj) PURE;
  218.     STDMETHOD_(unsigned long,AddRef) (THIS)  PURE;
  219.     STDMETHOD_(unsigned long,Release) (THIS) PURE;
  220.  
  221.     // *** IEnumOleDataObject methods ***
  222.     STDMETHOD(Next) (THIS_ unsigned long celt, LPLPMONIKER rgelt, unsigned long * pceltFetched) PURE;
  223.     STDMETHOD(Skip) (THIS_ unsigned long celt) PURE;
  224.     STDMETHOD(Reset) (THIS) PURE;
  225.     STDMETHOD(Clone) (THIS_ IEnumMoniker * * ppenm) PURE;
  226. };
  227. //typedef       IEnumMoniker * LPENUMMONIKER, ** LPLPENUMMONIKER;
  228.  
  229.  
  230.  
  231.  
  232. STDAPI  BindMoniker(LPMONIKER pmk, unsigned long grfOpt, REFIID iidResult, void * * ppvResult);
  233. STDAPI  MkParseDisplayName(LPBC pbc, char * szUserName, 
  234.                 unsigned long  * pchEaten, LPLPMONIKER ppmk);
  235. STDAPI  MonikerRelativePathTo(LPMONIKER pmkSrc, LPMONIKER pmkDest, LPMONIKER
  236.                 * ppmkRelPath, unsigned long fCalledFromMethod);
  237. STDAPI  MonikerCommonPrefixWith(LPMONIKER pmkThis, LPMONIKER pmkOther,
  238.                 LPLPMONIKER ppmkCommon);
  239. STDAPI  CreateBindCtx(unsigned long reserved, LPLPBC ppbc);
  240. STDAPI  CreateGenericComposite(LPMONIKER pmkFirst, LPMONIKER pmkRest,
  241.                             LPLPMONIKER ppmkComposite);
  242.                                 
  243. // MAC has the API's GetClassFSp and CreateFileMonikerFSp also defined.
  244.  
  245. STDAPI  GetClassFile (const char *  szFilename, CLSID * pclsid);
  246. STDAPI  CreateFileMoniker(char *  lpszPathName, LPLPMONIKER ppmk);
  247.  
  248. STDAPI  CreateItemMoniker(char * lpszDelim, char * lpszItem,
  249.     LPLPMONIKER ppmk);
  250. STDAPI  CreateAntiMoniker(LPLPMONIKER ppmk);
  251. STDAPI  CreatePointerMoniker(LPUNKNOWN punk, LPLPMONIKER ppmk);
  252.  
  253. STDAPI  GetRunningObjectTable( unsigned long reserved, LPLPRUNNINGOBJECTTABLE pprot);
  254.  
  255.  
  256. #endif /* !__MONIKER__ */
  257.